The answer is given in the completed program, below.
The following is a complete program, suitable for copying to Notepad and running.
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ButtonDemo2 extends JFrame implements ActionListener { JButton bChange; // constructor public ButtonDemo2() { getContentPane(). setLayout( new FlowLayout() ); // choose the layout manager bChange = new JButton("Click Me!");// construct a Button bChange.addActionListener( this ); // register the ButtonDemo2 object // as the listener for its Button. getContentPane().add( bChange ); // add the button to the container } public void actionPerformed( ActionEvent evt) { getContentPane().setBackground( Color.blue ); repaint(); // ask the system to paint the screen. } public static void main ( String[] args ) { ButtonDemo2 frm = new ButtonDemo2(); WindowQuitter wquit = new WindowQuitter(); frm.addWindowListener( wquit ); frm.setSize( 200, 150 ); frm.setVisible( true ); } } class WindowQuitter extends WindowAdapter { public void windowClosing( WindowEvent e ) { System.exit( 0 ); // what to do for this event--exit the program } }
The repaint()
method asks the system to paint the screen again.
Don't call paint()
.
The repaint()
method tells the system that it will have to repaint
the screen sometime soon (because we have changed something.
The system will do this when it is ready.